/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tramite.bc;

import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.cip.esymons.general.be.Solicitante;
import org.cip.esymons.tesoreria.bc.MovimientoCuentaFacadeLocal;
import org.cip.esymons.tesoreria.be.CuentaIngreso;
import org.cip.esymons.tesoreria.be.DocumentoPago;
import org.cip.esymons.tesoreria.be.MovimientoCuenta;
import org.cip.esymons.tesoreria.be.TipoMoneda;
import org.cip.esymons.tramite.be.TipoDocumento;
import org.cip.esymons.tramite.be.Transaccion;

/**
 *
 * @author Cristian
 */
public class MovimientoCuentaDelegate {

    private MovimientoCuentaFacadeLocal local;

    public MovimientoCuentaDelegate() {
        local=lookupMovimientoCuentaFacade();
    }

    public DocumentoPago crearDeudaTramite(List<CuentaIngreso> lista,Solicitante solicitante,Date fecha, Transaccion trans, TipoDocumento tipDoc, Double obra, TipoMoneda tm) {
        return local.crearDeudaTramite(lista, solicitante, fecha, trans, tipDoc, obra, tm);
    }

    public DocumentoPago PagarTramite(List<CuentaIngreso> lista,Solicitante solicitante,Date fecha, Transaccion trans, TipoDocumento tipDoc, Double obra, TipoMoneda tm) {
        return local.PagarTramite(lista, solicitante, fecha, trans, tipDoc, obra, tm);
    }
    
    public List<MovimientoCuenta> deudaXTramite(Transaccion trans){
        return local.deudaxTramite(trans);
    }

    public void edit(MovimientoCuenta mov){
        local.edit(mov);
    }

    private MovimientoCuentaFacadeLocal lookupMovimientoCuentaFacade() {
        try {
            Context c = new InitialContext();
            return (MovimientoCuentaFacadeLocal) c.lookup("java:comp/env/MovimientoCuentaFacade");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }
}